package guoanmaker.operator.business.service;

import guoanmaker.operator.business.model.OperatorSpaceAppointment;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.ArrayList;
import java.util.List;

/**
 * @author huZhaoyu 
 * @ClassName: OperatorSpaceAppointmentServiceInterface 
 * @Description: OperatorSpaceAppointmentServiceInterface
 * @date 2017/6/28
 */
public interface OperatorSpaceAppointmentServiceInterface {

    /** 
    * @Title: saveSpaceAppointment
    * @Description: 新增/修改 空间预约
    * @param：OperatorRoundPhoto   
    * @return OperatorSpaceAppointment    
    * @throws 
    */
    OperatorSpaceAppointment saveSpaceAppointment(OperatorSpaceAppointment operatorSpaceAppointment);

    /** 
    * @Title: getAllSpaceAppointment
    * @Description: 查询所有空间预约
    * @param：void  
    * @return List<OperatorSpaceAppointment>   
    * @throws 
    */
    List<OperatorSpaceAppointment> getAllSpaceAppointment();

    /** 
    * @Title: getAllSpaceAppointmentByPage
    * @Description: 查询全部空间预约并分页 
     * @param：Integer page 页码  
     * @param：Integer size 条数 
    * @return Page<OperatorSpaceAppointment>   
    * @throws 
    */
    Page<OperatorSpaceAppointment> getAllSpaceAppointmentByPage(Integer page, Integer size);

    /** 
    * @Title: deleteSpaceAppointmentById
    * @Description: 根据Id删除空间预约 
    * @param： String id   
    * @return void   
    * @throws 
    */
    void deleteSpaceAppointmentById(String id);

    /** 
    * @Title: getSpaceAppointmentById 
    * @Description: 根据Id查询空间预约
    * @param： String id
    * @return OperatorSpaceAppointment    
    * @throws 
    */
    OperatorSpaceAppointment getSpaceAppointmentById(String id);

    /** 
     * @Title: findByAppointmentNameContainingAndAppointmentPhoneContainingOrderByCreateDateDesc 
     * @Description: 根据用户姓名与手机号查询
     * @param： String appointmentName 用户姓名
     * @param： String appointmentPhone 用户手机
     * @return OperatorSpaceAppointment    
     * @throws 
     */
    ArrayList<OperatorSpaceAppointment> findByAppointmentNameContainingAndAppointmentPhoneContainingOrderByCreateDateDesc(String appointmentName, String appointmentPhone, Integer page, Integer size);

}
